summaryrefslogtreecommitdiff
path: root/src/pages/[locale]/index.astro
diff options
context:
space:
mode:
authorJoe Carstairs <me@joeac.net>2025-04-15 07:52:17 +0100
committerJoe Carstairs <me@joeac.net>2025-04-15 07:52:17 +0100
commitfd5998240f65e3bc3a94e4045f8f5c286a755b1c (patch)
tree7e8ee0d2a42d110ca5a8e1618668186075842b47 /src/pages/[locale]/index.astro
parentc39ad295afa6fbe51bab00870f06465bc62b71b0 (diff)
displays date on news items
Diffstat (limited to 'src/pages/[locale]/index.astro')
-rw-r--r--src/pages/[locale]/index.astro27
1 files changed, 24 insertions, 3 deletions
diff --git a/src/pages/[locale]/index.astro b/src/pages/[locale]/index.astro
index 7846fd8..15b4005 100644
--- a/src/pages/[locale]/index.astro
+++ b/src/pages/[locale]/index.astro
@@ -1,10 +1,14 @@
---
-import Page from '$layouts/Page.astro';
-import localeStaticPaths from '$lib/localeStaticPaths';
+import Button from '$components/Button.astro';
+import CommitteeList from '$components/CommitteeList/CommitteeList.astro';
+import NewsIndex from '$components/NewsIndex/NewsIndex.astro';
import translate from '$i18n/translate';
import tPage from '$i18n/translations/pages/home';
+import Page from '$layouts/Page.astro';
+import localeStaticPaths from '$lib/localeStaticPaths';
+import { isBefore, isNewsItemInLocale } from '$lib/newsUtils';
import type Locale from '$types/Locale';
-import CommitteeList from '$components/CommitteeList/CommitteeList.astro';
+import { getCollection } from 'astro:content';
export async function getStaticPaths() {
return localeStaticPaths;
@@ -12,9 +16,26 @@ export async function getStaticPaths() {
const locale = Astro.params.locale as Locale;
const t = translate(locale);
+
+const allNewsItemsInLocale = await getCollection('news', (item) =>
+ isNewsItemInLocale(item, locale)
+);
+const firstNewsItem = allNewsItemsInLocale.find(
+ (item) => !allNewsItemsInLocale.some((otherItem) => isBefore(item, otherItem))
+);
+if (!firstNewsItem) {
+ throw new Error('No first news item.');
+}
---
<Page title={t(tPage, { key: 'title' })}>
+ <section id="news">
+ <h2 set:html={t(tPage, { key: 'news' })} />
+ <NewsIndex headingLevel="h3" newsItems={[firstNewsItem]} />
+ <Button classNames="grid-span-3 grid-prose-end" href={`/${locale}/news`}>
+ {t(tPage, { key: 'aw-news' })} ▶
+ </Button>
+ </section>
<section id="about">
<h2 set:html={t(tPage, { key: 'about-us' })} />
<p set:html={t(tPage, { key: 'about-us-para-1' })} />